#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int func_Add(const int &val_1, const int &val_2)
{
	return val_1 + val_2;
}

int main()
{
	// 变量
	int val = 10;
	// 引用 常量引用
	const int &ref = val;

	// 常量引用 引用变量 引用变量不能在修改，但变量本身可以做修改
	cout << "ref = " << ref << endl;

	val = 520;
	cout << "ref = " << ref << endl;
	cout << "val = " << val << endl;

	// 常量引用 作为参数
	int val_1 = 80;
	int val_2 = 60;

	cout << "val_1 + val_2 = " << func_Add(val_1, val_2) << endl;

	// 常用引用 引用常量
	// int & ref_1 = 10;      // 不使用常量引用是   不能引用常量的
	const int &ref_1 = 10;
	const int val_3 = 50;

	// int & ref_2 = val_3;  // 不使用常量引用是不 能引用const 所修饰的常量
	const int &ref_2 = val_3;

	// 常量引用 引用临时值
	// int & ref_3 = val_1 + val_2;  // 不使用常量引用是不能引用临时值的
	const int &ref_3 = val_1 + val_2;
}